package com.cskaoyan.javase._1extends._0introduction;

/**
 * 全新的版本
 * 为了实现对类的成员的复用,需要使用继承的语法
 *
 * 继承的语法:
 * Java在定义一个类时，可以显式地，直接让它继承另一个类
 * 这就是Java的继承机制，其语法是：
 * [访问权限修饰符] class 类名 extends 被继承的类/已经存在的某个类{}
 * 解释:
 *      1.以上继承的语法,在定义类时使用
 *      2.继承使用关键字extends
 *      3.在以上继承语法中,被继承的类,称之为"父类",继承父类,正在定义的新类,被称之为"子类"
 *      4.子类通过继承语法,继承父类,就得到了父类的所有成员
 *          注: 所有成员指的是所有成员变量,方法,不包含静态成员
 *          构造器不属于任何成员
 *      5.子类在继承父类成员的同时,还可以定义自身的成员
 *          实际上这个过程就是: 子类在父类的基础上,扩展了父类,所以使用的关键字是"extends"
 *          Java的继承表面上看是对父类成员的复用
 *          但实际上是子类扩展了父类
 *
 * @since 16:26
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class NewDemo {
    public static void main(String[] args) {
        NewStudent ns = new NewStudent();
        NewTeacher nt = new NewTeacher();
        System.out.println(ns.name);
        nt.eat();
    }
}

class NewPerson {
    String name;

    public void eat() {
        System.out.println("吃饭是重要的事情!");
    }
}

class NewStudent extends NewPerson {
    // String name;
    int stuId;

    // public void eat() {
    //     System.out.println("吃饭是重要的事情!");
    // }

    public void study() {
        System.out.println("吃完饭先睡一觉,然后学习!");
    }
}

class NewTeacher extends NewPerson {
    // String name;
    int teacherId;

    // public void eat() {
    //     System.out.println("吃饭是重要的事情!");
    // }

    public void teach() {
        System.out.println("老师正在上课!");
    }


}
